package com.alibaba.citrus.ots.unified.inventory.dto.api.response;

import com.alibaba.citrus.ots.unified.inventory.dto.api.request.AllocateOrderScItemDetail;
import com.alibaba.citrus.ots.unified.inventory.dto.api.request.AllocateOrderType;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @description: 调拨单
 * @author: yuhw
 * @date: 2021年09月12日 14:41
 **/
@Data
public class AllocateOrderDTO {
    /**
     * 类型 {@link AllocateOrderType}
     */
    private Integer type;
    /**
     * 调拨单id
     */
    private String allocateOrderId;
    /**
     * 调拨单号
     */
    private String code;
    /**
     * 调拨单外部单号 关联sap
     */
    private String outAllocateApplyOrderCode;
    /**
     * 调拨预报单号
     */
    private String allocateApplyOrderCode;
    /**
     * 提报组织id
     */
    private String applyOrgId;
    /**
     * 提报组织名称
     */
    private String applyOrgName;
    /**
     * 客户编码
     */
    private String customerCode;
    /**
     * 产品组id
     */
    private String productGroupId;
    /**
     * 收货仓库id
     */
    private String receivingWareHouseId;
    /**
     * 收货仓库名称
     */
    private String receivingWareHouseName;
    /**
     * 收货货区
     */
    private String receivingAreaId;
    /**
     * 收货货区名称
     */
    private String receivingAreaName;
    /**
     * 收货仓-联系人
     */
    private String receivingWareHouseContactPerson;
    /**
     * 收货仓-电话
     */
    private String receiveWareHousePhone;
    /**
     * 收货仓-地址
     */
    private String receiveWareHouseAddress;
    /**
     * 发货仓库id
     */
    private String shipWareHouseId;
    /**
     * 收货仓库名称
     */
    private String shipWareHouseName;
    /**
     * 发货货区id
     */
    private String shippingAreaId;
    /**
     * 发货货区名称
     */
    private String shippingAreaName;
    /**
     * 包含货品的id
     */
    private List<String> scItemIds;

    /**
     * 货品
     */
    private String scItemName;
    /**
     * 状态 {@link com.alibaba.citrus.ots.unified.inventory.dto.api.request.AllocateOrderStatus}
     */
    private Integer status;
    /**
     * 创建人
     */
    private String creator;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 确认时间
     */
    private Date confirmTime;
    /**
     * 完成时间
     */
    private Date finishTime;
    /**
     * 更新人
     */
    private  String lastUpdateUser;
    /**
     * 更新时间
     */
    private Date updateTime;
    /**
     * 生效日期
     */
    private String effectiveDate;
    /**
     * 单据日期
     */
    private String docDate;

    /**
     * 装运方式
     */
    private Integer shippingMethod;
    /**
     * 合计数量
     */
    private String totalQuantity;
    /**
     * 折扣
     */
    private String discount;
    /**
     * 合计金额
     */
    private String totalAmount;
    /**
     * 备注
     */
    private String remark;
    /**
     * 是否需要还货
     */
    private boolean sendBackRequired;
    /**
     * 期望交货日期
     */
    private String exceptedDeliveryDate;
    /**
     * 总部内部售达方编号
     */
    private String sapInternalSalesBPCode;
    /**
     * 总部内部送达方编号
     */
    private String sapInternalDeliveryBPCode;
    /**
     * 总部售达方编号
     */
    private String sapSalesBPCode;
    /**
     * 总部送达方编号
     */
    private String sapDeliveryBPCode;
    /**
     * 总部成本中心
     */
    private String sapCostCenterId;
    /**
     * 客户采购参考号
     */
    private String sapRefPoNo;
    /**
     * 是否为退单
     */
    private boolean isReturn;
    /**
     * 发货数量
     */
    private String shippingAmount;
    /**
     * 收货数量
     */
    private String receivingAmount;
    /**
     * 预计到货日期
     */
    private String expectedArrivalTime;
    /**
     * 发货时间
     */
    private Date shippingTime;
    /**
     * 收货时间
     */
    private Date receivingTime;
//    /**
//     * 状态
//     */
//    private String status;
    /**
     * 单据类型 {@link AllocateOrderType}
     */
    private Integer orderType;

//    /**
//     * 创建人
//     */
//    private String creator;
//    /**
//     * 备注
//     */
//    private String remark;
    /**
     * 调拨单货品明细
     */
    private List<AllocateOrderScItemDetail> allocateOrderScItemDetails;
    /**
     * 调拨单货品发货明细
     */
    private List<AllocateOrderScItemShippedDetailDTO> allocateOrderScItemShippedDetailDTOS;
    /**
     * 调拨单货品收货明细
     */
    private List<AllocateOrderScItemReceivedDetailDTO> allocateOrderScItemReceivedDetailDTOS;
    /**
     * 调拨单 出库单
     */
    private List<AllocateOrderOutBoundOrderDTO> allocateOrderOutBoundOrderDTOS;
    /**
     *  调拨单 出库单
     */
    private List<AllocateOrderWareHouseOrderDTO> allocateOrderWareHouseOrderDTOS;
}
